package com.esyoga.yoyoga.service;

import com.esyoga.yoyoga.pojo.*;
import com.esyoga.yoyoga.pojo.DTO.GymOrdersDTO;
import com.esyoga.yoyoga.pojo.DTO.TrainerAgreementDTO;

import java.math.BigDecimal;
import java.util.List;

/*
场馆service层接口
 */
public interface GymService {

    /*通过场馆id找到所有与此场馆签约的教练（教练不能是被禁用的）*/
    List<TTrainer> findTrainersByGymid(int gid);

    /*查看该场馆的所有签约审核（签约状态为0）*/
    List<TrainerAgreementDTO> findTTrainerAgreementsByGymid(int gid);

//    /*场馆对教练的签约审核，flag=1则签约成功（改签约状态为4，发成功通知），flag=0则审核失败（发失败通知）*/
//    void contractAuditWithTrainer(int tid, int gid, int flag);

    /*场馆对教练的签约审核，flag=1则签约成功（改签约状态为4，发成功通知），flag=0则审核失败（发失败通知）*/
    void contractAudit(int taid,int flag);

    /*查看场馆的所有订单*/
    List<GymOrdersDTO> findOrdersByGymid(int gid);

    /*场馆与教练解约*/
    void rescissionWithTrainer(int gid,int tid);

    /*查余额*/
    BigDecimal findBalanceByGid(int gid);

    /*场馆发起与平台签约的请求*/
    String applicationForSignature(int gid,double platformratio,BigDecimal joinBanlance);

    /*取得场馆的信息*/
    TGym findGymByGid(int gid);

    /*场馆的信息修改*/
    String InformationModify(TGym tGym);

    /*计算教练的星级*/
    BigDecimal countStarForTrainer(int tid);

    /*经营分析*/



    public List<TGym> findAllGyms(String gName);
    public List<TTrainer> findAllTrainersByGymId(Integer gId);

    /**
     * 查询TGyms
     * @return
     */
    public List<TGym> selectTGyms();

    public int updateTGym(TGym tGym);

    /**
     * 更新余额
     * @param money
     * @param gId
     * @return
     */
    public String updateTGymBalance(BigDecimal money, Integer gId);

}
